package admrouter

import (
	"github.com/gin-gonic/gin"
	"yundian/internel/app/handlers/alipay"
	"yundian/internel/app/handlers/pcl/admin/orderhandler"
	"yundian/internel/app/handlers/pcl/admin/refundhandler"
	"yundian/internel/app/handlers/pcl/admin/reporthandler"
	"yundian/internel/app/handlers/pcl/admin/synchandler"
	"yundian/internel/app/middlewares"
	"yundian/internel/pkg/dingo"
)

// 运营管理 API
func InitBusinessRouter() dingo.ApiRouter {
	return func(g *gin.RouterGroup) {
		{
			// 订单
			o := g.Group("order")
			o.Use(middlewares.JwtAuthMiddleware)                                 // 需要登录
			o.POST("get-member-auto-pay-list", orderhandler.GetAutoPayOrderList) // 会员周期付款订单
			o.POST("handle-auto-pay-cancel", orderhandler.HandelCancelAutoOrder) // 周期付款订单-退款

			o.GET("", orderhandler.GetOrderList)                    // 获取订单列表
			o.GET("kf", orderhandler.GetOrderListKf)                // 获取订单列表(客服)
			o.GET("kf-all-order", orderhandler.GetALLOrderListToKf) // 获取订单列表(客服)
			//o.GET("yw", orderhandler.GetOrderListYw)                // 获取订单列表(运营) 关闭
			o.GET("count", orderhandler.GetOrderCount)       // 订单统计
			o.GET("detail/:id", orderhandler.GetOrderDetail) // 订单详情
			//o.GET("export", orderhandler.ExportOrderList)           // 导出订单列表
			o.POST("cancel", orderhandler.HandelCancelOrder)     // 取消订单-退款
			o.POST("complete", orderhandler.HandelCompleteOrder) // 手动完结订单
			o.POST("end-orders", alipay.HandleAliPayEndOrder)    //结束订单
			o.POST("bak", orderhandler.HandelBakOrder)           // 恢复订单
			o.POST("sync", orderhandler.HandelSyncOrder)         // 同步订单
			o.POST("search", orderhandler.HanleSearchOrder)      // 同步订单
			o.POST("wechat-pay-search", orderhandler.HandleWeChatPaySearchOrder)
			o.POST("prompt", orderhandler.HandelPromptOrder)    // 催款
			o.GET("getRefundList", refundhandler.GetRefundList) // 退款列表查询


			// 优化后的接口
			o.POST("refund", orderhandler.HandelCancelOrderByMoney) // 退款
			o.POST("refund-trade-no", orderhandler.HandelCancelOrderByMoneyByTradeNo) // 退款



			//查看物流信息
			o.POST("getCourier", orderhandler.HandelGetCourier)

			//取消支付分订单
			o.POST("cancelEndOrder", orderhandler.HandleCancelEndOrder)

			//手动分红
			o.POST("/handmadeDividends", orderhandler.HandelHandmadeDividends)

			//分红回滚
			o.DELETE("/undoDividends", orderhandler.HandelUndoDividends)

			// 故障
			r := g.Group("report")
			r.Use(middlewares.JwtAuthMiddleware)        // 需要登录
			r.GET("", reporthandler.GetReportList)      // 故障列表查询
			r.GET(":id", reporthandler.GetReportDetail) // 故障详情
			r.PUT("", reporthandler.HandleUpdateReport) // 故障修改状态

			// 数据抓取
			z := g.Group("/business/zq")
			z.Use(middlewares.JwtAuthMiddleware)     // 需要登录
			z.POST("users", synchandler.UpdateUsers) // 同步用户信息
			//z.POST("devices", synchandler.UpdateDevices)          // 同步设备信息
			z.POST("members", synchandler.UpdateMembers) // 同步会员信息
			z.POST("cash", synchandler.UpdateCash)       // 同步提现信息

			// 手动统计
			z.POST("order-statistics", synchandler.HandelOrderStatistics) // 手动日统计

			//z.POST("dividends", synchandler.UpdateDividends)      // 同步分红信息
			z.POST("prices", synchandler.HandleSyncPlacesPrice) // 同步免押密码线
			//g.GET("/business/zq/prices", synchandler.UpdatePrices)            // 同步免押密码线
			g.GET("/business/zq/userinfo", synchandler.UpdateUserInfoCount)         // 同步用户信息
			g.GET("/business/zq/place-price", synchandler.HandleSyncPlacesPrice)    // 同步用户信息
			g.GET("/business/zq/pcl-price", synchandler.HandleSyncPlacesPriceByPcl) // 同步多套餐信息
			//z.POST("prices-meal", synchandler.UpdatePricesMeal)   // 同步套餐密码线

			// 订单相关
			g.POST("/business/zq/orders", synchandler.UpdateOrders)          // 同步订单信息
			g.POST("/business/zq/orders-take", synchandler.UpdateOrdersTake) // 同步订单信息
			g.POST("/business/zq/orders-tosql", synchandler.OrdersToSql)     // 同步订单信息
			g.POST("/business/zq/dividends", synchandler.UpdateDividends)    // 同步订单信息
			//g.POST("/business/zq/take-orders", synchandler.UpdateTakeOrders)   // 同步订单信息
			//g.POST("/business/zq/orders-tosql", synchandler.UpdateOrdersToSql) // 同步订单信息入库
			//g.POST("/business/zq/take-orders-tosql", synchandler.UpdateTakeOrdersToSql) // 同步订单信息入库

			t := g.Group("complaints")

			t.Use(middlewares.JwtAuthMiddleware) // 需要登录

			t.GET("/complaintsList", orderhandler.HandelComplaintsList)            //查询客诉列表
			t.GET("/complaintsDetail", orderhandler.HandelComplaintsDetail)        //查询客诉详情
			t.GET("/complaintsHistory", orderhandler.HandelComplaintsHistory)      //查询协商历史
			t.POST("/complaintsSubmit", orderhandler.HandelComplaintsSubmit)       //提交回复
			t.POST("/complaintsComplete", orderhandler.HandelComplaintsComplete)   //反馈完成
			t.POST("/complaintsUploadImg", orderhandler.HandelComplaintsUploadImg) //商户上传图片

			t.POST("/refreshComplaintsLog", orderhandler.HandlerRefreshComplaintsLog) //刷新投诉订单日志

			// 微信老订单处理
			g.POST("/business/cancel/yd-old-list", orderhandler.HandelCancelYdOldOrder)
			g.POST("/business/cancel/zm-old-list", orderhandler.HandelCancelZmOldOrder)
		}
	}
}
